#pragma once

enum BoundingShapeType;

// Defines the base interface of a bounding shape, such as a sphere or fustrum
struct IBoundingShape
{
	virtual ~IBoundingShape(void) {}

	virtual bool Intersects(IBoundingShape* other) = 0;

	virtual BoundingShapeType getType(void) const = 0;
};

enum BoundingShapeType
{
	BOUNDING_SHAPE_SPHERE,
	BOUNDING_SHAPE_FUSTRUM,
	BOUNDING_SHAPE_CUBE,
	BOUNDING_SHAPE_COLLISION_MESH
};